﻿











using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;


namespace DAL.Helpers
{
    public static class StoredProceduresHelper
	{
        private static string connectionString = ConfigurationManager.ConnectionStrings["SqlServices"].ConnectionString;
        private static SqlConnection connection = new SqlConnection(connectionString);

		public static SqlCommand LookUp_FamiglieColori_ColoriAbbinati(string codicepolvere, string famiglia, string coloriabbinati)
		{
			SqlCommand cmd = new SqlCommand("GP.LookUp_FamiglieColori_ColoriAbbinati", connection);
			cmd.CommandType = CommandType.StoredProcedure;

			SqlParameter p1 = cmd.Parameters.Add("@CodicePolvere", SqlDbType.VarChar, 100);
			p1.Value = codicepolvere;
			SqlParameter p2 = cmd.Parameters.Add("@Famiglia", SqlDbType.VarChar, 100);
			p2.Value = famiglia;
			SqlParameter p3 = cmd.Parameters.Add("@ColoriAbbinati", SqlDbType.VarChar, 200);
			p3.Value = coloriabbinati;


		    return cmd;
		}
		
		public static SqlCommand QuickReportInfo(DateTime? datamovimentofrom, DateTime? datamovimentoto, string impianti, string descrizioneimpianti, string applicazione, string famiglia)
		{
			SqlCommand cmd = new SqlCommand("GP.QuickReportInfo", connection);
			cmd.CommandType = CommandType.StoredProcedure;

			SqlParameter p1 = cmd.Parameters.Add("@DatamovimentoFrom", SqlDbType.DateTime, 0);
			p1.Value = datamovimentofrom;
			SqlParameter p2 = cmd.Parameters.Add("@DatamovimentoTo", SqlDbType.DateTime, 0);
			p2.Value = datamovimentoto;
			SqlParameter p3 = cmd.Parameters.Add("@Impianti", SqlDbType.VarChar, 200);
			p3.Value = impianti;
			SqlParameter p4 = cmd.Parameters.Add("@DescrizioneImpianti", SqlDbType.VarChar, 400);
			p4.Value = descrizioneimpianti;
			SqlParameter p5 = cmd.Parameters.Add("@Applicazione", SqlDbType.Char, 1);
			p5.Value = applicazione;
			SqlParameter p6 = cmd.Parameters.Add("@Famiglia", SqlDbType.VarChar, 20);
			p6.Value = famiglia;


		    return cmd;
		}
		
		public static SqlCommand ReportDirezionale(DateTime? datamovimentofrom, DateTime? datamovimentoto, string codicepolvere, string famiglia, string impianto, string applicazione, string coloriabbinati, string fornitore, string codlotto, byte? sortorder, byte? tipo)
		{
			SqlCommand cmd = new SqlCommand("GP.ReportDirezionale", connection);
			cmd.CommandType = CommandType.StoredProcedure;

			SqlParameter p1 = cmd.Parameters.Add("@DatamovimentoFrom", SqlDbType.DateTime, 0);
			p1.Value = datamovimentofrom;
			SqlParameter p2 = cmd.Parameters.Add("@DatamovimentoTo", SqlDbType.DateTime, 0);
			p2.Value = datamovimentoto;
			SqlParameter p3 = cmd.Parameters.Add("@CodicePolvere", SqlDbType.VarChar, 100);
			p3.Value = codicepolvere;
			SqlParameter p4 = cmd.Parameters.Add("@Famiglia", SqlDbType.VarChar, 100);
			p4.Value = famiglia;
			SqlParameter p5 = cmd.Parameters.Add("@Impianto", SqlDbType.VarChar, 100);
			p5.Value = impianto;
			SqlParameter p6 = cmd.Parameters.Add("@Applicazione", SqlDbType.Char, 1);
			p6.Value = applicazione;
			SqlParameter p7 = cmd.Parameters.Add("@ColoriAbbinati", SqlDbType.VarChar, 200);
			p7.Value = coloriabbinati;
			SqlParameter p8 = cmd.Parameters.Add("@Fornitore", SqlDbType.VarChar, 50);
			p8.Value = fornitore;
			SqlParameter p9 = cmd.Parameters.Add("@CodLotto", SqlDbType.VarChar, 25);
			p9.Value = codlotto;
			SqlParameter p10 = cmd.Parameters.Add("@SortOrder", SqlDbType.TinyInt, 0);
			p10.Value = sortorder;
			SqlParameter p11 = cmd.Parameters.Add("@Tipo", SqlDbType.TinyInt, 0);
			p11.Value = tipo;


		    return cmd;
		}
		
		public static SqlCommand ReportDirezionale2(DateTime? datamovimentofrom, DateTime? datamovimentoto, string codicepolvere, string famiglia, string impianto, string applicazione, string coloriabbinati, string fornitore, string codlotto, byte? sortorder, byte? tipo)
		{
			SqlCommand cmd = new SqlCommand("GP.ReportDirezionale2", connection);
			cmd.CommandType = CommandType.StoredProcedure;

			SqlParameter p1 = cmd.Parameters.Add("@DatamovimentoFrom", SqlDbType.DateTime, 0);
			p1.Value = datamovimentofrom;
			SqlParameter p2 = cmd.Parameters.Add("@DatamovimentoTo", SqlDbType.DateTime, 0);
			p2.Value = datamovimentoto;
			SqlParameter p3 = cmd.Parameters.Add("@CodicePolvere", SqlDbType.VarChar, 100);
			p3.Value = codicepolvere;
			SqlParameter p4 = cmd.Parameters.Add("@Famiglia", SqlDbType.VarChar, 100);
			p4.Value = famiglia;
			SqlParameter p5 = cmd.Parameters.Add("@Impianto", SqlDbType.VarChar, 100);
			p5.Value = impianto;
			SqlParameter p6 = cmd.Parameters.Add("@Applicazione", SqlDbType.Char, 1);
			p6.Value = applicazione;
			SqlParameter p7 = cmd.Parameters.Add("@ColoriAbbinati", SqlDbType.VarChar, 200);
			p7.Value = coloriabbinati;
			SqlParameter p8 = cmd.Parameters.Add("@Fornitore", SqlDbType.VarChar, 50);
			p8.Value = fornitore;
			SqlParameter p9 = cmd.Parameters.Add("@CodLotto", SqlDbType.VarChar, 25);
			p9.Value = codlotto;
			SqlParameter p10 = cmd.Parameters.Add("@SortOrder", SqlDbType.TinyInt, 0);
			p10.Value = sortorder;
			SqlParameter p11 = cmd.Parameters.Add("@Tipo", SqlDbType.TinyInt, 0);
			p11.Value = tipo;


		    return cmd;
		}
		
		public static SqlCommand ReportDirezionaleDettaglioPolveriXXXX(DateTime? datamovimentofrom, DateTime? datamovimentoto, string codicepolvere, string famiglia, string impianto, string applicazione, string coloriabbinati, byte? sortorder)
		{
			SqlCommand cmd = new SqlCommand("GP.ReportDirezionaleDettaglioPolveriXXXX", connection);
			cmd.CommandType = CommandType.StoredProcedure;

			SqlParameter p1 = cmd.Parameters.Add("@DatamovimentoFrom", SqlDbType.DateTime, 0);
			p1.Value = datamovimentofrom;
			SqlParameter p2 = cmd.Parameters.Add("@DatamovimentoTo", SqlDbType.DateTime, 0);
			p2.Value = datamovimentoto;
			SqlParameter p3 = cmd.Parameters.Add("@CodicePolvere", SqlDbType.VarChar, 100);
			p3.Value = codicepolvere;
			SqlParameter p4 = cmd.Parameters.Add("@Famiglia", SqlDbType.VarChar, 100);
			p4.Value = famiglia;
			SqlParameter p5 = cmd.Parameters.Add("@Impianto", SqlDbType.VarChar, 100);
			p5.Value = impianto;
			SqlParameter p6 = cmd.Parameters.Add("@Applicazione", SqlDbType.Char, 1);
			p6.Value = applicazione;
			SqlParameter p7 = cmd.Parameters.Add("@ColoriAbbinati", SqlDbType.VarChar, 200);
			p7.Value = coloriabbinati;
			SqlParameter p8 = cmd.Parameters.Add("@SortOrder", SqlDbType.TinyInt, 0);
			p8.Value = sortorder;


		    return cmd;
		}
		
		public static SqlCommand ReportDirezionalePolveriXXXX(DateTime? datamovimentofrom, DateTime? datamovimentoto, string codicepolvere, string famiglia, string impianto, string applicazione, string coloriabbinati, byte? sortorder)
		{
			SqlCommand cmd = new SqlCommand("GP.ReportDirezionalePolveriXXXX", connection);
			cmd.CommandType = CommandType.StoredProcedure;

			SqlParameter p1 = cmd.Parameters.Add("@DatamovimentoFrom", SqlDbType.DateTime, 0);
			p1.Value = datamovimentofrom;
			SqlParameter p2 = cmd.Parameters.Add("@DatamovimentoTo", SqlDbType.DateTime, 0);
			p2.Value = datamovimentoto;
			SqlParameter p3 = cmd.Parameters.Add("@CodicePolvere", SqlDbType.VarChar, 100);
			p3.Value = codicepolvere;
			SqlParameter p4 = cmd.Parameters.Add("@Famiglia", SqlDbType.VarChar, 100);
			p4.Value = famiglia;
			SqlParameter p5 = cmd.Parameters.Add("@Impianto", SqlDbType.VarChar, 100);
			p5.Value = impianto;
			SqlParameter p6 = cmd.Parameters.Add("@Applicazione", SqlDbType.Char, 1);
			p6.Value = applicazione;
			SqlParameter p7 = cmd.Parameters.Add("@ColoriAbbinati", SqlDbType.VarChar, 200);
			p7.Value = coloriabbinati;
			SqlParameter p8 = cmd.Parameters.Add("@SortOrder", SqlDbType.TinyInt, 0);
			p8.Value = sortorder;


		    return cmd;
		}
		
		public static SqlCommand TestOutParameter(int? param1, int? param2)
		{
			SqlCommand cmd = new SqlCommand("GP.TestOutParameter", connection);
			cmd.CommandType = CommandType.StoredProcedure;

			SqlParameter p1 = cmd.Parameters.Add("@param1", SqlDbType.Int, 0);
			p1.Value = param1;
			SqlParameter p2 = cmd.Parameters.Add("@param2", SqlDbType.Int, 0);
			p2.Direction = ParameterDirection.Output;


		    return cmd;
		}
		
	}

}